var mongoose=require('mongoose')
//连接数据库
var db=mongoose.createConnection('mongodb://127.0.0.1:27017/warehouse')
//定义模型 规定数据类型 key 与表(集合) 必须一致
var newScheam=mongoose.Schema({
	Cart:Array,//购物车
	order:Array,//订单
	Collection:Array,//收藏
	wallet:Number,//钱包
	address:Array,//收货地址
	chat:Array,//聊天消息列表
	_id:String
})

//关联表(集合) 
var clients=db.model('clients',newScheam)

class operation {
	constructor(mode) {
		this.mode=(parms)=>{
			return new mode(parms);
		}
	};
	//新添仓库表
	append(obj={}){
		return new Promise((resolve,reject)=>{
			if(!obj._id){
				reject('_id 为必填项')
			}
			// 默认参数
			var DefaultParams={
				Cart:[],
				order:[],
				Collection:[],
				wallet:0,
				address:[],
				chat:[]
			}
			for(var key in obj)
				DefaultParams[key]=obj[key]
			this.mode(DefaultParams)
			.save().then(
			 result=>{
				 console.log('仓库床架成功')
				resolve('仓库床架成功')
			 },
			 err=>{
				 console.log('仓库床架失败')
				 resolve('仓库床架失败')
			 }
			)
		})
	};
	//查询仓库数据
	getDate(_id='null'){
		return new Promise((resolve,reject)=>{
			clients.find({_id},(err,doc)=>{
				if(err||!doc[0]){
					resolve('错误',err)
					return;
				}
				resolve(doc[0])
			})
		})
	}
	//修改仓库数据
	upDate(query,parms){
		return	new Promise((resolve,reject)=>{
			if(parms._id){
				reject('不能修改_id')
			}
				clients.updateOne(query,parms,(err,doc)=>{
					if(err){
						console.log('错误')
							reject(err)
							return;
						}
						if(!doc.acknowledged) reject('没有这项参数')
						resolve(doc)
				})
		})
	}
}

module.exports=new operation(clients)